# 通过opencv调用摄像头拍照并保持到本地目录
# 工具导入

import cv2
import datetime

img_path = "D:\\Develop\\pyproject\\IPCamer\\config\\"  # 图像保证的根目录路径


def get_picture():
    """拍照保存图像
    """
    cv2.namedWindow('CamDemo', 1)  # 窗口起名

    ''''测试图像显示功能'''

    # img = cv2.imread(r"D:\\Develop\\pyproject\\IPCamer\\config\\5.jpg ")
    # img = cv2.imread(img_path+"5.jpg")
    # cv2.imshow('img', img)
    # cv2.waitKey(2000)  # Milliseconds

    """
    开启摄像头,可能的两个摄像头ip地址 
    http://10.131.26.67:8081/video
    http://6cwhvdbsblpcm.local:8081/video    
    """
    video = "http://admin:admin@10.131.26.67:8081/video"
    cap = cv2.VideoCapture(video)  # 获取视频内容

    # 测试摄像头是否打开
    if not cap.isOpened():
        print("Error opening Video File.")
    else:
        print("成功 opening Video File.")

    # 循环读取图像内容
    while cap.isOpened():
        ret, frame = cap.read()
        # print("ret =",ret) 已经读取成功了。
        cv2.imshow('CamDemo', frame)
        key = cv2.waitKey(24)  # 如果不加这一句，图像将一闪而过

        if key == ord('q'):  # 按q键保存图片并退出相机
            now_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")  # 现在的精确时间，准备将时间戳加到保存文件名中
            cv2.imwrite(img_path + now_time + "car.jpg", frame)  # 保存图片，这里的实现方式实在太笨拙了，感觉应该加上时间戳存储不同的文件
            break

    # 释放摄像头
    cap.release()
    # 关闭窗体
    cv2.destroyAllWindows()


if __name__ == '__main__':
    get_picture()
